package com.example.mqttclient.mqtt;

import android.content.Context;
import android.content.SharedPreferences;

// MqttParametersManager类用于管理MQTT连接参数的存储和读取
public class MqttParametersManager {
    // 将MQTT连接参数保存到SharedPreferences中
    public static void saveConfig(Context context, MqttParameters parameters) {
        // 获取SharedPreferences的编辑器
        SharedPreferences.Editor editor = context.getSharedPreferences("MqttParameters",
                Context.MODE_PRIVATE).edit();
        // 保存服务器IP
        editor.putString("serverIp", parameters.serverIp);
        // 保存端口号
        editor.putString("port", parameters.port);
        // 保存客户端ID
        editor.putString("clientId", parameters.clientId);
        // 保存用户名
        editor.putString("userName", parameters.userName);
        // 保存密码
        editor.putString("passWord", parameters.passWord);
        // 提交修改
        editor.apply();
    }

    // 从SharedPreferences中读取MQTT连接参数
    public static MqttParameters readConfig(Context context) {
        // 获取SharedPreferences实例
        SharedPreferences preferences = context.getSharedPreferences("MqttParameters",
                Context.MODE_PRIVATE);
        // 读取服务器IP，若不存在则使用默认值"192.168.1.101"
        String serverIp = preferences.getString("serverIp", "172.16.56.91");
        // 读取端口号，若不存在则使用默认值"1883"
        String port = preferences.getString("port", "1883");
        // 读取客户端ID，若不存在则使用默认值"clientAndroid"
        String clientId = preferences.getString("clientid", "clientAndroid");
        // 读取用户名，若不存在则使用默认值""
        String userName = preferences.getString("userName", "");
        // 读取密码，若不存在则使用默认值""
        String passWord = preferences.getString("passWord", "");
        // 创建并返回MqttParameters对象
        return new MqttParameters(serverIp, port, clientId, userName, passWord);
    }
}